{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-actions-core",
      "artifactVersion": "2021.52.8",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.actions",
          "org.nuxeo.ecm.actions.jsf"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions",
        "id": "grp:org.nuxeo.ecm.actions",
        "name": "org.nuxeo.ecm.actions",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "2021.52"
      },
      "bundleId": "org.nuxeo.ecm.actions",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions/org.nuxeo.ecm.actions/org.nuxeo.ecm.platform.actions.ActionService.properties/Contributions/org.nuxeo.ecm.platform.actions.ActionService.properties--configuration",
              "id": "org.nuxeo.ecm.platform.actions.ActionService.properties--configuration",
              "registrationOrder": 29,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2021.52.8",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <property name=\"nuxeo.actions.debug.log_min_duration_ms\">-1</property>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions/org.nuxeo.ecm.actions/org.nuxeo.ecm.platform.actions.ActionService.properties",
          "name": "org.nuxeo.ecm.platform.actions.ActionService.properties",
          "requirements": [],
          "resolutionOrder": 270,
          "services": [],
          "startOrder": 255,
          "version": "2021.52.8",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.actions.ActionService.properties\">\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\"\n    point=\"configuration\">\n    <property name=\"nuxeo.actions.debug.log_min_duration_ms\">-1</property>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/actions-properties.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.actions.ActionService",
          "documentation": "\n    The action service provides extension points for pluggable actions and\n    filters and manage UI type action compatibility (since 5.6)\n\n    Actions are commands that can be accessed and triggered from the site pages.\n    Their visibility is adapted to the current user and site possibilities using\n    filters.\n\n    @author Anahide Tchertchian (at@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nThe action service provides extension points for pluggable actions and\nfilters and manage UI type action compatibility (since 5.6)\n</p><p>\nActions are commands that can be accessed and triggered from the site pages.\nTheir visibility is adapted to the current user and site possibilities using\nfilters.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.actions.ActionService",
              "descriptors": [
                "org.nuxeo.ecm.platform.actions.DefaultActionFilter",
                "org.nuxeo.ecm.platform.actions.FilterFactory"
              ],
              "documentation": "\n      An action filter is a set of rules that will apply - or not - given an\n      action and a context.\n\n      Filter properties :\n\n      - id: will be used ot identify the filter from actions definitions.\n\n      - rules: set of rules composing the filter\n\n\n      The default filter implementation uses filter rules with the following\n      properties:\n\n      - grant: boolean indicating whether this is a granting rule or a denying\n      rule.\n\n      - permission: permission like \"Write\" that will be checked on the context\n      for the given user. A rule can hold several permissions: it applies if\n      user holds at least one of them.\n\n      - facet: facet like \"Folderish\" that can be set on the document type\n      ({@see org.nuxeo.ecm.core.schema.types.Type}) to desribe the document type\n      genral behaviour. A rule can hold several facets: it applies if current\n      document in context has at least one of them.\n\n      - group: group like \"members\" to check against current user in context. A rule\n       can hold several groups: it applies if current user is in one of them.\n\n      - condition: expression that can be evaluated against the current context.\n      A rule can hold several conditions; it applies if at least one of the conditions\n      is verified. The condition can be of the form #{somevar} or #{somevar.somemethod},\n      or #{somevar.somemethod(arg)}, in which case it will be interpreted a Seam expression,\n      otherwise it will be interpreted as a Jexl expression. A reference for Jexl can be found at\n      http://commons.apache.org/jexl/reference/syntax.html\n      The Jexl context for the expression contains the variables \"document\", \"principal\",\n      and \"SeamContext\".\n\n      - type: document type to check against current document in context. A rule\n      can hold several types: it applies if current document is one of them. The\n      fake 'Server' type is used to check the server context.\n\n      - schema: document schema to check against current document in context. A\n      rule can hold several schemas: it applies if current document has one of\n      them.\n\n      A filter is granting access to an action if, among its rules, no denying\n      rule is found and at least one granting rule is found. If no rule is set,\n      it is granted.\n\n      Custom filters can be defined on the extension point, provided they follow\n      the {@see org.nuxeo.ecm.platform.actions.ActionFilter} interface, using\n      the following syntax:\n\n      <code>\n    <object class=\"my.package.MyFilter\"/>\n</code>\n\n\n      Example of action filter using default filter implementation:\n\n      <code>\n    <filter id=\"theFilter\">\n        <rule grant=\"\">\n            <permission>Write</permission>\n            <facet>Folderish</facet>\n            <condition>condition</condition>\n            <type>Workspace</type>\n            <type>Section</type>\n        </rule>\n        <rule grant=\"false\">\n            <condition>condition 1</condition>\n            <condition>condition 2</condition>\n        </rule>\n    </filter>\n</code>\n",
              "documentationHtml": "<p>\nAn action filter is a set of rules that will apply - or not - given an\naction and a context.\n</p><p>\nFilter properties :\n</p><p>\n- id: will be used ot identify the filter from actions definitions.\n</p><p>\n- rules: set of rules composing the filter\n</p><p>\nThe default filter implementation uses filter rules with the following\nproperties:\n</p><p>\n- grant: boolean indicating whether this is a granting rule or a denying\nrule.\n</p><p>\n- permission: permission like &#34;Write&#34; that will be checked on the context\nfor the given user. A rule can hold several permissions: it applies if\nuser holds at least one of them.\n</p><p>\n- facet: facet like &#34;Folderish&#34; that can be set on the document type\n({&#64;see org.nuxeo.ecm.core.schema.types.Type}) to desribe the document type\ngenral behaviour. A rule can hold several facets: it applies if current\ndocument in context has at least one of them.\n</p><p>\n- group: group like &#34;members&#34; to check against current user in context. A rule\ncan hold several groups: it applies if current user is in one of them.\n</p><p>\n- condition: expression that can be evaluated against the current context.\nA rule can hold several conditions; it applies if at least one of the conditions\nis verified. The condition can be of the form #{somevar} or #{somevar.somemethod},\nor #{somevar.somemethod(arg)}, in which case it will be interpreted a Seam expression,\notherwise it will be interpreted as a Jexl expression. A reference for Jexl can be found at\nhttp://commons.apache.org/jexl/reference/syntax.html\nThe Jexl context for the expression contains the variables &#34;document&#34;, &#34;principal&#34;,\nand &#34;SeamContext&#34;.\n</p><p>\n- type: document type to check against current document in context. A rule\ncan hold several types: it applies if current document is one of them. The\nfake &#39;Server&#39; type is used to check the server context.\n</p><p>\n- schema: document schema to check against current document in context. A\nrule can hold several schemas: it applies if current document has one of\nthem.\n</p><p>\nA filter is granting access to an action if, among its rules, no denying\nrule is found and at least one granting rule is found. If no rule is set,\nit is granted.\n</p><p>\nCustom filters can be defined on the extension point, provided they follow\nthe {&#64;see org.nuxeo.ecm.platform.actions.ActionFilter} interface, using\nthe following syntax:\n</p><p>\n</p><pre><code>    &lt;object class&#61;&#34;my.package.MyFilter&#34;/&gt;\n</code></pre><p>\nExample of action filter using default filter implementation:\n</p><p>\n</p><pre><code>    &lt;filter id&#61;&#34;theFilter&#34;&gt;\n        &lt;rule grant&#61;&#34;&#34;&gt;\n            &lt;permission&gt;Write&lt;/permission&gt;\n            &lt;facet&gt;Folderish&lt;/facet&gt;\n            &lt;condition&gt;condition&lt;/condition&gt;\n            &lt;type&gt;Workspace&lt;/type&gt;\n            &lt;type&gt;Section&lt;/type&gt;\n        &lt;/rule&gt;\n        &lt;rule grant&#61;&#34;false&#34;&gt;\n            &lt;condition&gt;condition 1&lt;/condition&gt;\n            &lt;condition&gt;condition 2&lt;/condition&gt;\n        &lt;/rule&gt;\n    &lt;/filter&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions/org.nuxeo.ecm.actions/org.nuxeo.ecm.platform.actions.ActionService/ExtensionPoints/org.nuxeo.ecm.platform.actions.ActionService--filters",
              "id": "org.nuxeo.ecm.platform.actions.ActionService--filters",
              "label": "filters (org.nuxeo.ecm.platform.actions.ActionService)",
              "name": "filters",
              "version": "2021.52.8"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.actions.ActionService",
              "descriptors": [
                "org.nuxeo.ecm.platform.actions.Action"
              ],
              "documentation": "\n      An action is defined by the following properties:\n\n      - id: string identifying the action\n\n      - label: the action name\n\n      - help: the action help message\n\n      - link: string representing the command the action will trigger\n\n      - category: a string useful to group actions that will be rendered in the\n      same area of a page. An action can define several categories.\n\n      - filter-ids: id of a filter that will be used to control the action\n      visibility. An action can have several filters: it is visible if all its\n      filters grant the access.\n\n      - filter: a filter definition can be done directly within the action\n      definition. It is a filter like others and can be referred by other\n      actions.\n\n      - icon: the optional icon path for this action\n\n      - confirm: an optional javascript confirmation string that can be\n      triggered when executing the command.\n\n      - enabled: boolean indicating whether the action is currently active. This\n      can be used to hide existing actions when customizing the site behaviour.\n\n      - order: an optional integer used to sort actions within the same\n      category. This attribute may be depracated in the future.\n\n      - immediate: an optional boolean (available since 5.4.2) that makes it\n      possible to call command actions without validating the enclosing form.\n\n      - type: the UI type action (available since 5.6)\n\n      UI Type properties, defined within a \"properties\" tag:\n      - property: the property value\n      - name: the property name\n\n      Properties also accept list or map-like values.\n\n      Before 5.6, it is important to understand that an action does *not*\n      define the way it will be rendered: this is left to pages, templates\n      and other components displaying it. Most of the time, actions will be\n      rendered as command link or command buttons.\n\n      Since 5.6, the template /incl/action/generic_action_template.xhtml handles\n      rendering of an action depending on its type.\n\n      Examples:\n\n      <code>\n    <action enabled=\"true\" icon=\"/icons/file.gif\" id=\"TAB_RIGHTS\"\n        label=\"action.view.rights\"\n        link=\"/incl/tabs/document_rights.xhtml\" type=\"fancybox\">\n        <category>VIEW_ACTION_LIST</category>\n        <filter-id>rights</filter-id>\n        <properties>\n            <property name=\"url\">/incl/fancybox.xhtml</property>\n            <propertyList name=\"myListProp\">\n                <value>item1</value>\n                <value>item2</value>\n            </propertyList>\n            <propertyMap name=\"myMapProp\">\n                <property name=\"mySubProp\">mySubPropValue</property>\n            </propertyMap>\n        </properties>\n    </action>\n    <action enabled=\"true\" icon=\"/icons/action_add_file.gif\"\n        id=\"newFile\" label=\"action.new.file\" link=\"create_file\" type=\"button\">\n        <category>SUBVIEW_UPPER_LIST</category>\n        <filter-id>create</filter-id>\n    </action>\n    <action enabled=\"true\" icon=\"/icons/action_add.gif\" id=\"newSection\"\n        label=\"command.create.section\"\n        link=\"#{documentActions.createDocument('Section')}\" type=\"icon\">\n        <category>SUBVIEW_UPPER_LIST</category>\n        <filter id=\"newSection\">\n            <rule grant=\"true\">\n                <permission>AddChildren</permission>\n                <type>SectionRoot</type>\n            </rule>\n        </filter>\n    </action>\n</code>\n\n\n      Actions extension point provides mergeing features: you can change an\n      existing action definition in your custom extension point provided you use\n      the same identifier.\n\n    \n",
              "documentationHtml": "<p>\nAn action is defined by the following properties:\n</p><p>\n- id: string identifying the action\n</p><p>\n- label: the action name\n</p><p>\n- help: the action help message\n</p><p>\n- link: string representing the command the action will trigger\n</p><p>\n- category: a string useful to group actions that will be rendered in the\nsame area of a page. An action can define several categories.\n</p><p>\n- filter-ids: id of a filter that will be used to control the action\nvisibility. An action can have several filters: it is visible if all its\nfilters grant the access.\n</p><p>\n- filter: a filter definition can be done directly within the action\ndefinition. It is a filter like others and can be referred by other\nactions.\n</p><p>\n- icon: the optional icon path for this action\n</p><p>\n- confirm: an optional javascript confirmation string that can be\ntriggered when executing the command.\n</p><p>\n- enabled: boolean indicating whether the action is currently active. This\ncan be used to hide existing actions when customizing the site behaviour.\n</p><p>\n- order: an optional integer used to sort actions within the same\ncategory. This attribute may be depracated in the future.\n</p><p>\n- immediate: an optional boolean (available since 5.4.2) that makes it\npossible to call command actions without validating the enclosing form.\n</p><p>\n- type: the UI type action (available since 5.6)\n</p><p>\nUI Type properties, defined within a &#34;properties&#34; tag:\n- property: the property value\n- name: the property name\n</p><p>\nProperties also accept list or map-like values.\n</p><p>\nBefore 5.6, it is important to understand that an action does *not*\ndefine the way it will be rendered: this is left to pages, templates\nand other components displaying it. Most of the time, actions will be\nrendered as command link or command buttons.\n</p><p>\nSince 5.6, the template /incl/action/generic_action_template.xhtml handles\nrendering of an action depending on its type.\n</p><p>\nExamples:\n</p><p>\n</p><pre><code>    &lt;action enabled&#61;&#34;true&#34; icon&#61;&#34;/icons/file.gif&#34; id&#61;&#34;TAB_RIGHTS&#34;\n        label&#61;&#34;action.view.rights&#34;\n        link&#61;&#34;/incl/tabs/document_rights.xhtml&#34; type&#61;&#34;fancybox&#34;&gt;\n        &lt;category&gt;VIEW_ACTION_LIST&lt;/category&gt;\n        &lt;filter-id&gt;rights&lt;/filter-id&gt;\n        &lt;properties&gt;\n            &lt;property name&#61;&#34;url&#34;&gt;/incl/fancybox.xhtml&lt;/property&gt;\n            &lt;propertyList name&#61;&#34;myListProp&#34;&gt;\n                &lt;value&gt;item1&lt;/value&gt;\n                &lt;value&gt;item2&lt;/value&gt;\n            &lt;/propertyList&gt;\n            &lt;propertyMap name&#61;&#34;myMapProp&#34;&gt;\n                &lt;property name&#61;&#34;mySubProp&#34;&gt;mySubPropValue&lt;/property&gt;\n            &lt;/propertyMap&gt;\n        &lt;/properties&gt;\n    &lt;/action&gt;\n    &lt;action enabled&#61;&#34;true&#34; icon&#61;&#34;/icons/action_add_file.gif&#34;\n        id&#61;&#34;newFile&#34; label&#61;&#34;action.new.file&#34; link&#61;&#34;create_file&#34; type&#61;&#34;button&#34;&gt;\n        &lt;category&gt;SUBVIEW_UPPER_LIST&lt;/category&gt;\n        &lt;filter-id&gt;create&lt;/filter-id&gt;\n    &lt;/action&gt;\n    &lt;action enabled&#61;&#34;true&#34; icon&#61;&#34;/icons/action_add.gif&#34; id&#61;&#34;newSection&#34;\n        label&#61;&#34;command.create.section&#34;\n        link&#61;&#34;#{documentActions.createDocument(&#39;Section&#39;)}&#34; type&#61;&#34;icon&#34;&gt;\n        &lt;category&gt;SUBVIEW_UPPER_LIST&lt;/category&gt;\n        &lt;filter id&#61;&#34;newSection&#34;&gt;\n            &lt;rule grant&#61;&#34;true&#34;&gt;\n                &lt;permission&gt;AddChildren&lt;/permission&gt;\n                &lt;type&gt;SectionRoot&lt;/type&gt;\n            &lt;/rule&gt;\n        &lt;/filter&gt;\n    &lt;/action&gt;\n</code></pre><p>\nActions extension point provides mergeing features: you can change an\nexisting action definition in your custom extension point provided you use\nthe same identifier.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions/org.nuxeo.ecm.actions/org.nuxeo.ecm.platform.actions.ActionService/ExtensionPoints/org.nuxeo.ecm.platform.actions.ActionService--actions",
              "id": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "label": "actions (org.nuxeo.ecm.platform.actions.ActionService)",
              "name": "actions",
              "version": "2021.52.8"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.actions.ActionService",
              "descriptors": [
                "org.nuxeo.ecm.platform.actions.TypeCompatibility"
              ],
              "documentation": "\n      Action compatibility type (since 5.6) defining the UI type action\n      from deprecated action category:\n\n      - category: category action\n\n      - type:\n      UI action type\n\n      Examples:\n\n      <code>\n    <typeCompatibility type=\"link_icon\">\n        <category>DOCUMENT_UPPER_ACTION</category>\n        <category>DOCUMENT_HEADER_ACTIONS_LIST</category>\n    </typeCompatibility>\n    <typeCompatibility type=\"link_icon_text\">\n        <category>DEFAULT_LIST</category>\n        <category>CLIPBOARD_LIST</category>\n    </typeCompatibility>\n    <typeCompatibility type=\"button\">\n        <category>CURRENT_SELECTION_COPY</category>\n        <category>CLIPBOARD_PASTE</category>\n        <category>CURRENT_SELECTION_ADDTOLIST</category>\n        <category>CURRENT_SELECTION_TRASH</category>\n        <category>CREATE_DOCUMENT_FORM</category>\n        <category>EDIT_DOCUMENT_FORM</category>\n    </typeCompatibility>\n    <typeCompatibility type=\"link\">\n        <category>USER_SERVICES</category>\n        <category>USER_MENU_ACTIONS</category>\n    </typeCompatibility>\n    <typeCompatibility type=\"bare_link\">\n        <category>DOCUMENT_HEADER_ACTIONS_LIST_HREF</category>\n    </typeCompatibility>\n</code>\n",
              "documentationHtml": "<p>\nAction compatibility type (since 5.6) defining the UI type action\nfrom deprecated action category:\n</p><p>\n- category: category action\n</p><p>\n- type:\nUI action type\n</p><p>\nExamples:\n</p><p>\n</p><pre><code>    &lt;typeCompatibility type&#61;&#34;link_icon&#34;&gt;\n        &lt;category&gt;DOCUMENT_UPPER_ACTION&lt;/category&gt;\n        &lt;category&gt;DOCUMENT_HEADER_ACTIONS_LIST&lt;/category&gt;\n    &lt;/typeCompatibility&gt;\n    &lt;typeCompatibility type&#61;&#34;link_icon_text&#34;&gt;\n        &lt;category&gt;DEFAULT_LIST&lt;/category&gt;\n        &lt;category&gt;CLIPBOARD_LIST&lt;/category&gt;\n    &lt;/typeCompatibility&gt;\n    &lt;typeCompatibility type&#61;&#34;button&#34;&gt;\n        &lt;category&gt;CURRENT_SELECTION_COPY&lt;/category&gt;\n        &lt;category&gt;CLIPBOARD_PASTE&lt;/category&gt;\n        &lt;category&gt;CURRENT_SELECTION_ADDTOLIST&lt;/category&gt;\n        &lt;category&gt;CURRENT_SELECTION_TRASH&lt;/category&gt;\n        &lt;category&gt;CREATE_DOCUMENT_FORM&lt;/category&gt;\n        &lt;category&gt;EDIT_DOCUMENT_FORM&lt;/category&gt;\n    &lt;/typeCompatibility&gt;\n    &lt;typeCompatibility type&#61;&#34;link&#34;&gt;\n        &lt;category&gt;USER_SERVICES&lt;/category&gt;\n        &lt;category&gt;USER_MENU_ACTIONS&lt;/category&gt;\n    &lt;/typeCompatibility&gt;\n    &lt;typeCompatibility type&#61;&#34;bare_link&#34;&gt;\n        &lt;category&gt;DOCUMENT_HEADER_ACTIONS_LIST_HREF&lt;/category&gt;\n    &lt;/typeCompatibility&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions/org.nuxeo.ecm.actions/org.nuxeo.ecm.platform.actions.ActionService/ExtensionPoints/org.nuxeo.ecm.platform.actions.ActionService--typeCompatibility",
              "id": "org.nuxeo.ecm.platform.actions.ActionService--typeCompatibility",
              "label": "typeCompatibility (org.nuxeo.ecm.platform.actions.ActionService)",
              "name": "typeCompatibility",
              "version": "2021.52.8"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions/org.nuxeo.ecm.actions/org.nuxeo.ecm.platform.actions.ActionService",
          "name": "org.nuxeo.ecm.platform.actions.ActionService",
          "requirements": [],
          "resolutionOrder": 271,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.actions.ActionService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions/org.nuxeo.ecm.actions/org.nuxeo.ecm.platform.actions.ActionService/Services/org.nuxeo.ecm.platform.actions.ejb.ActionManager",
              "id": "org.nuxeo.ecm.platform.actions.ejb.ActionManager",
              "overriden": false,
              "version": "2021.52.8"
            }
          ],
          "startOrder": 853,
          "version": "2021.52.8",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.actions.ActionService\">\n  <documentation>\n    The action service provides extension points for pluggable actions and\n    filters and manage UI type action compatibility (since 5.6)\n\n    Actions are commands that can be accessed and triggered from the site pages.\n    Their visibility is adapted to the current user and site possibilities using\n    filters.\n\n    @author Anahide Tchertchian (at@nuxeo.com)\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.platform.actions.ActionService\" />\n\n  <service>\n          <provide interface=\"org.nuxeo.ecm.platform.actions.ejb.ActionManager\" />\n  </service>\n\n  <extension-point name=\"filters\">\n    <documentation>\n      An action filter is a set of rules that will apply - or not - given an\n      action and a context.\n\n      Filter properties :\n\n      - id: will be used ot identify the filter from actions definitions.\n\n      - rules: set of rules composing the filter\n\n\n      The default filter implementation uses filter rules with the following\n      properties:\n\n      - grant: boolean indicating whether this is a granting rule or a denying\n      rule.\n\n      - permission: permission like \"Write\" that will be checked on the context\n      for the given user. A rule can hold several permissions: it applies if\n      user holds at least one of them.\n\n      - facet: facet like \"Folderish\" that can be set on the document type\n      ({@see org.nuxeo.ecm.core.schema.types.Type}) to desribe the document type\n      genral behaviour. A rule can hold several facets: it applies if current\n      document in context has at least one of them.\n\n      - group: group like \"members\" to check against current user in context. A rule\n       can hold several groups: it applies if current user is in one of them.\n\n      - condition: expression that can be evaluated against the current context.\n      A rule can hold several conditions; it applies if at least one of the conditions\n      is verified. The condition can be of the form #{somevar} or #{somevar.somemethod},\n      or #{somevar.somemethod(arg)}, in which case it will be interpreted a Seam expression,\n      otherwise it will be interpreted as a Jexl expression. A reference for Jexl can be found at\n      http://commons.apache.org/jexl/reference/syntax.html\n      The Jexl context for the expression contains the variables \"document\", \"principal\",\n      and \"SeamContext\".\n\n      - type: document type to check against current document in context. A rule\n      can hold several types: it applies if current document is one of them. The\n      fake 'Server' type is used to check the server context.\n\n      - schema: document schema to check against current document in context. A\n      rule can hold several schemas: it applies if current document has one of\n      them.\n\n      A filter is granting access to an action if, among its rules, no denying\n      rule is found and at least one granting rule is found. If no rule is set,\n      it is granted.\n\n      Custom filters can be defined on the extension point, provided they follow\n      the {@see org.nuxeo.ecm.platform.actions.ActionFilter} interface, using\n      the following syntax:\n\n      <code>\n        <object class=\"my.package.MyFilter\" />\n      </code>\n\n      Example of action filter using default filter implementation:\n\n      <code>\n        <filter id=\"theFilter\">\n          <rule grant=\"\">\n            <permission>Write</permission>\n            <facet>Folderish</facet>\n            <condition>condition</condition>\n            <type>Workspace</type>\n            <type>Section</type>\n          </rule>\n          <rule grant=\"false\">\n            <condition>condition 1</condition>\n            <condition>condition 2</condition>\n          </rule>\n        </filter>\n      </code>\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.actions.DefaultActionFilter\" />\n    <object class=\"org.nuxeo.ecm.platform.actions.FilterFactory\" />\n  </extension-point>\n\n  <extension-point name=\"actions\">\n    <documentation>\n      An action is defined by the following properties:\n\n      - id: string identifying the action\n\n      - label: the action name\n\n      - help: the action help message\n\n      - link: string representing the command the action will trigger\n\n      - category: a string useful to group actions that will be rendered in the\n      same area of a page. An action can define several categories.\n\n      - filter-ids: id of a filter that will be used to control the action\n      visibility. An action can have several filters: it is visible if all its\n      filters grant the access.\n\n      - filter: a filter definition can be done directly within the action\n      definition. It is a filter like others and can be referred by other\n      actions.\n\n      - icon: the optional icon path for this action\n\n      - confirm: an optional javascript confirmation string that can be\n      triggered when executing the command.\n\n      - enabled: boolean indicating whether the action is currently active. This\n      can be used to hide existing actions when customizing the site behaviour.\n\n      - order: an optional integer used to sort actions within the same\n      category. This attribute may be depracated in the future.\n\n      - immediate: an optional boolean (available since 5.4.2) that makes it\n      possible to call command actions without validating the enclosing form.\n\n      - type: the UI type action (available since 5.6)\n\n      UI Type properties, defined within a \"properties\" tag:\n      - property: the property value\n      - name: the property name\n\n      Properties also accept list or map-like values.\n\n      Before 5.6, it is important to understand that an action does *not*\n      define the way it will be rendered: this is left to pages, templates\n      and other components displaying it. Most of the time, actions will be\n      rendered as command link or command buttons.\n\n      Since 5.6, the template /incl/action/generic_action_template.xhtml handles\n      rendering of an action depending on its type.\n\n      Examples:\n\n      <code>\n        <action id=\"TAB_RIGHTS\" link=\"/incl/tabs/document_rights.xhtml\"\n          enabled=\"true\" label=\"action.view.rights\" icon=\"/icons/file.gif\"\n          type=\"fancybox\">\n          <category>VIEW_ACTION_LIST</category>\n          <filter-id>rights</filter-id>\n          <properties>\n            <property name=\"url\">/incl/fancybox.xhtml</property>\n            <propertyList name=\"myListProp\">\n              <value>item1</value>\n              <value>item2</value>\n            </propertyList>\n            <propertyMap name=\"myMapProp\">\n              <property name=\"mySubProp\">mySubPropValue</property>\n            </propertyMap>\n          </properties>\n        </action>\n\n        <action id=\"newFile\" link=\"create_file\" enabled=\"true\"\n          label=\"action.new.file\" icon=\"/icons/action_add_file.gif\" type=\"button\">\n          <category>SUBVIEW_UPPER_LIST</category>\n          <filter-id>create</filter-id>\n        </action>\n\n        <action id=\"newSection\"\n          link=\"#{documentActions.createDocument('Section')}\" enabled=\"true\"\n          label=\"command.create.section\" icon=\"/icons/action_add.gif\" type=\"icon\">\n          <category>SUBVIEW_UPPER_LIST</category>\n          <filter id=\"newSection\">\n            <rule grant=\"true\">\n              <permission>AddChildren</permission>\n              <type>SectionRoot</type>\n            </rule>\n          </filter>\n        </action>\n      </code>\n\n      Actions extension point provides mergeing features: you can change an\n      existing action definition in your custom extension point provided you use\n      the same identifier.\n\n    </documentation>\n    <object class=\"org.nuxeo.ecm.platform.actions.Action\" />\n  </extension-point>\n\n  <extension-point name=\"typeCompatibility\">\n    <documentation>\n      Action compatibility type (since 5.6) defining the UI type action\n      from deprecated action category:\n\n      - category: category action\n\n      - type:\n      UI action type\n\n      Examples:\n\n      <code>\n        <typeCompatibility type=\"link_icon\">\n          <category>DOCUMENT_UPPER_ACTION</category>\n          <category>DOCUMENT_HEADER_ACTIONS_LIST</category>\n        </typeCompatibility>\n        <typeCompatibility type=\"link_icon_text\">\n          <category>DEFAULT_LIST</category>\n          <category>CLIPBOARD_LIST</category>\n        </typeCompatibility>\n        <typeCompatibility type=\"button\">\n          <category>CURRENT_SELECTION_COPY</category>\n          <category>CLIPBOARD_PASTE</category>\n          <category>CURRENT_SELECTION_ADDTOLIST</category>\n          <category>CURRENT_SELECTION_TRASH</category>\n          <category>CREATE_DOCUMENT_FORM</category>\n          <category>EDIT_DOCUMENT_FORM</category>\n        </typeCompatibility>\n        <typeCompatibility type=\"link\">\n          <category>USER_SERVICES</category>\n          <category>USER_MENU_ACTIONS</category>\n        </typeCompatibility>\n        <typeCompatibility type=\"bare_link\">\n          <category>DOCUMENT_HEADER_ACTIONS_LIST_HREF</category>\n        </typeCompatibility>\n      </code>\n\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.actions.TypeCompatibility\" />\n  </extension-point>\n</component>\n",
          "xmlFileName": "/OSGI-INF/actions-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions/org.nuxeo.ecm.actions/org.nuxeo.ecm.platform.filters/Contributions/org.nuxeo.ecm.platform.filters--filters",
              "id": "org.nuxeo.ecm.platform.filters--filters",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.52.8",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <filter id=\"not_folder\">\n      <rule grant=\"false\">\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"folder\">\n      <rule grant=\"true\">\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"not_collection\">\n      <rule grant=\"false\">\n        <facet>Collection</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"collection\">\n      <rule grant=\"true\">\n        <facet>Collection</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"not_container\">\n      <rule grant=\"false\">\n        <facet>Collection</facet>\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"container\">\n      <rule grant=\"true\">\n        <facet>Collection</facet>\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions/org.nuxeo.ecm.actions/org.nuxeo.ecm.platform.filters",
          "name": "org.nuxeo.ecm.platform.filters",
          "requirements": [],
          "resolutionOrder": 272,
          "services": [],
          "startOrder": 326,
          "version": "2021.52.8",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.filters\">\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"filters\">\n\n    <filter id=\"not_folder\">\n      <rule grant=\"false\">\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"folder\">\n      <rule grant=\"true\">\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"not_collection\">\n      <rule grant=\"false\">\n        <facet>Collection</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"collection\">\n      <rule grant=\"true\">\n        <facet>Collection</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"not_container\">\n      <rule grant=\"false\">\n        <facet>Collection</facet>\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"container\">\n      <rule grant=\"true\">\n        <facet>Collection</facet>\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/filters-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-actions-core-2021.52.8.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.actions/org.nuxeo.ecm.actions",
      "id": "org.nuxeo.ecm.actions",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: root\r\nBuild-Jdk: 11.0.22\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 0.0.0.SNAPSHOT\r\nExport-Package: org.nuxeo.ecm.platform.actions,org.nuxeo.ecm.platform.\r\n actions.ejb,org.nuxeo.ecm.platform.actions.elcache\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Localization: bundle\r\nBundle-Name: Nuxeo ECM Actions Manager\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nBundle-Vendor: Nuxeo\r\nEclipse-LazyStart: true\r\nNuxeo-Component: OSGI-INF/actions-properties.xml, OSGI-INF/actions-fra\r\n mework.xml, OSGI-INF/filters-contrib.xml\r\nImport-Package: javax.annotation;version=\"1.0\",javax.ejb,org.apache.co\r\n mmons.logging,org.jboss.seam.pageflow,org.jbpm.graph.def,org.nuxeo.co\r\n mmon.xmap.annotation,org.nuxeo.ecm.core;api=split,org.nuxeo.ecm.core.\r\n api;api=split,org.nuxeo.ecm.core.api.impl,org.nuxeo.ecm.directory;api\r\n =split,org.nuxeo.ecm.platform.actions,org.nuxeo.runtime,org.nuxeo.run\r\n time.api,org.nuxeo.runtime.expression,org.nuxeo.runtime.model\r\nBundle-SymbolicName: org.nuxeo.ecm.actions;singleton:=true\r\n\r\n",
      "maxResolutionOrder": 272,
      "minResolutionOrder": 270,
      "packages": [],
      "requirements": [],
      "version": "2021.52.8"
    }
  ],
  "creationDate": 1712772989810,
  "key": "Nuxeo Platform-2021.52",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1712772989810,
  "version": "2021.52"
}